# @Time : 2024-10-23 18:14
# @Author : Fioman 
# @Phone : 13149920693

"""
except: 捕获异常,并且中断当前执行单元(比如函数或者是函数中的一个块) 就是这个try:except 块
然后再except捕获到异常之后,我们可以添加我们自己想要的操作,如果没有except这个捕获异常的代码,
我们的程序在遇到异常的时候就直接崩溃了
"""
import inspect
import os


# region 1.  divideByZero异常捕获
def divide(a, b):
    try:
        res = a / b
    except Exception as e:
        currentFilename = os.path.basename(__file__)
        currentFunc = inspect.currentframe().f_code.co_name
        print(f"异常发生位置: {currentFilename} 文件的 {currentFunc} 方法")
        print(f"异常类型名称: {type(e).__name__},信息: {str(e)}")
        res = None  # 出现了异常返回None
    return res


print(divide(2, 2))
print(divide(2, 0))  # None 并且打印了division by zero
# endregion

# region 2. except else finnaly 的用法,如果没有捕获到异常执行的逻辑
try:
    res = 10 / 2
except Exception as e:
    print("发生了异常" + str(e))
else:
    print("没有发生异常: 结果是: {}".format(res))
finally:
    print('不管有没有发生异常,我都会最后被执行')
# endregion
